/**
 * Copyright ©2003~2019年5月25日 szkingdom
 * @author raohj
 * @date 2019年5月25日
 * @file RActiveMQConsumer.java
 * @comment : please input your comment to this file
 * @version : input version
 * @modify:
 * 		1、 2019年5月25日 由 raohj 新建文件
 */
package com.ccnu.demojava.mq.activemq.topic;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.jms.*;

/**
 * @author raohj
 * @date 2019年5月25日
 * @version 
 * @comment to add your comment
 */
public class RActiveMQConsumer {
	private static final Logger log = LoggerFactory.getLogger(RActiveMQConsumer.class);
	public static void main(String[] args) throws Exception{
		// 第一步：创建ConnectionFactory连接工厂
		jakarta.jms.ConnectionFactory connFactory = new ActiveMQConnectionFactory(
				ActiveMQConnectionFactory.DEFAULT_USER,
				ActiveMQConnectionFactory.DEFAULT_PASSWORD,
				ActiveMQConnectionFactory.DEFAULT_BROKER_URL);
		
		// 第二步：创建Connection
		jakarta.jms.Connection conn = connFactory.createConnection();
		conn.start();
		
		// 第三步：创建Session
		jakarta.jms.Session session = conn.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
		
		// 第四步：创建Destination
		jakarta.jms.Topic dest = session.createTopic("ActiveMQ_Topic1");
		
		// 第五步：创建MessageProducer
		jakarta.jms.MessageConsumer msgConsumer0 = session.createConsumer(dest);
		msgConsumer0.setMessageListener(new jakarta.jms.MessageListener() {
			@Override
			public void onMessage(jakarta.jms.Message message) {
				try {
					log.info("msg receive0: " + ((TextMessage) message).getText());
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		});
		
		jakarta.jms.MessageConsumer msgConsumer1 = session.createConsumer(dest);
		msgConsumer1.setMessageListener(new jakarta.jms.MessageListener() {
			@Override
			public void onMessage(jakarta.jms.Message message) {
				try {
					log.info("msg receive1: " + ((TextMessage) message).getText());
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		});
		
		jakarta.jms.MessageConsumer msgConsumer2 = session.createConsumer(dest);
		msgConsumer2.setMessageListener(new jakarta.jms.MessageListener() {
			@Override
			public void onMessage(jakarta.jms.Message message) {
				try {
					log.info("msg receive2: " + ((TextMessage) message).getText());
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		});
		
		Thread.sleep(60*1000);
		
		// 第六步：释放连接
		session.close();
		conn.close();
	}
}
